package com.naiterui.ehp.bs.recommend.vo.param;

import com.naiterui.ehp.bp.bo.emr.params.DrCaseParams;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 调用推荐用药接口的参数对象
 *
 * @author guoyongxiang
 * @since 2.9.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class RecomParamVO implements Serializable {

    /**
     * 字段或域定义：<code>serialVersionUID</code>
     */
    private static final long serialVersionUID = -6060029749020523334L;

    @ApiModelProperty(value = "求药ID", required = true)
    private Long requireId;

    @ApiModelProperty(value = "推荐类型(1:普通推荐,2:求药推荐)")
    private Integer type;

    /**
     * 患者ID
     */
    @ApiModelProperty(value = "患者ID", required = true)
    private Long patientId;

    @ApiModelProperty(value = "就诊人id")
    private Long inquirerId;

    @ApiModelProperty(value = "就诊人与患者关系")
    private Integer relation;

    /**
     * 患者姓名
     */
    @ApiModelProperty(value = "患者姓名", required = true)
    private String patientName;

    /**
     * 患者年龄
     */
    @ApiModelProperty(value = "患者年龄", required = true)
    private Integer patientAge;

    /**
     * 患者年龄单位
     */
    @ApiModelProperty(value = "患者年龄单位[天]")
    private String patientAgeUnit;

    @ApiModelProperty(value = "显示年龄")
    private String patientAgeStr;

    /**
     * 患者性别
     */
    @ApiModelProperty(value = "患者性别", required = true)
    private Integer patientGender;

    /**
     * 时间戳 用于避免重发
     */
    @ApiModelProperty(value = "请求时间戳,用于避免重发", required = true)
    private Long timestamp;

    /**
     * 临床诊断字段：<code>diagnosis</code>
     */
    @ApiModelProperty(value = "诊断信息列表", required = true)
    private List<String> diagnosis;

    /**
     * 推荐的药品明细
     */
    @ApiModelProperty(value = "药品列表", required = true)
    private List<RecomItemParamVO> items;

    /**
     * 推荐的药品明细
     */
    @ApiModelProperty(value = "病历对象")
    private DrCaseParams caseParams;

    /**
     * 病历数据收集状态：1：同意， 2：不同意，3：不提示，4：暂不同意
     */
    @ApiModelProperty(value = "病历数据收集状态  1：同意， 2：不同意，3：不提示，4：暂不同意")
    private Integer collectStatus;
    /**
     * 续方来源
     */
    @ApiModelProperty(value = "续方来源——【医生端V3.4.0-by gongbaoqiang】")
    private Long originRecom;

}
